www.gusucode.com > VC++ 宾馆管理系统(MSSQL) > VC++ 宾馆管理系统(MSSQL)/gusucode/Code/RoomTypeDLG.cpp
//Download by http://www.NewXing.com // RoomTypeDLG.cpp : implementation file // #include "stdafx.h" #include "hotel_mis.h" #include "RoomTypeDLG.h" #include "Hotel_MISView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRoomTypeDLG dialog CRoomTypeDLG::CRoomTypeDLG(CWnd* pParent /*=NULL*/) : CDialog(CRoomTypeDLG::IDD, pParent) { //{{AFX_DATA_INIT(CRoomTypeDLG) m_sArea = _T(""); m_sBedNo = _T(""); m_sTypeID = _T(""); m_sTypeName = _T(""); m_sPrice = _T(""); //}}AFX_DATA_INIT } void CRoomTypeDLG::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRoomTypeDLG) DDX_Text(pDX, IDC_ROOMTYPE_AREA, m_sArea); DDX_Text(pDX, IDC_ROOMTYPE_BEDNO, m_sBedNo); DDX_Text(pDX, IDC_ROOMTYPE_ID, m_sTypeID); DDX_Text(pDX, IDC_ROOMTYPE_NAME, m_sTypeName); DDX_Text(pDX, IDC_ROOMTYPE_PRICE, m_sPrice); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRoomTypeDLG, CDialog) //{{AFX_MSG_MAP(CRoomTypeDLG) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRoomTypeDLG message handlers BOOL CRoomTypeDLG::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here // Init Edit Text limit ((CEdit*)GetDlgItem(IDC_ROOMTYPE_ID))->SetLimitText(50); ((CEdit*)GetDlgItem(IDC_ROOMTYPE_NAME))->SetLimitText(50); ((CEdit*)GetDlgItem(IDC_ROOMTYPE_AREA))->SetLimitText(5); ((CEdit*)GetDlgItem(IDC_ROOMTYPE_BEDNO))->SetLimitText(2); ((CEdit*)GetDlgItem(IDC_ROOMTYPE_PRICE))->SetLimitText(9); if (m_bAppend) { // Update Dialog Caption SetWindowText(_T("添加客房标准")); // Init Combobox ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->SetCurSel(1); ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->SetCurSel(1); ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->SetCurSel(1); ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->SetCurSel(1); } else { // Update Dialog Caption SetWindowText(_T("修改客房标准")); // Disable ID and Name Edit GetDlgItem(IDC_ROOMTYPE_ID)->EnableWindow(false); GetDlgItem(IDC_ROOMTYPE_NAME)->EnableWindow(false); // Init Combobox if (m_bAirCon) ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->SetCurSel(1); else ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->SetCurSel(0); if (m_bTel) ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->SetCurSel(1); else ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->SetCurSel(0); if (m_bTV) ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->SetCurSel(1); else ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->SetCurSel(0); if (m_bToilet) ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->SetCurSel(1); else ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->SetCurSel(0); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CRoomTypeDLG::OnOK() { // TODO: Add extra validation here UpdateData(true); m_sTypeID.TrimRight(" "); m_sTypeName.TrimRight(" "); m_sArea.TrimRight(" "); m_sBedNo.TrimRight(" "); m_sPrice.TrimRight(" "); // Make sure all needed info is available CString sWarning=""; if ( ""==m_sTypeID ) sWarning=_T("标准编号"); else if ( ""==m_sTypeName ) sWarning=_T("标准名称"); else if ( ""==m_sArea ) sWarning=_T("客房面积"); else if ( ""==m_sBedNo ) sWarning=_T("床位数量"); else if ( ""==m_sPrice ) sWarning=_T("住房单价"); if ( ""!=sWarning ) { sWarning += _T("不能为空"); AfxMessageBox(sWarning, MB_ICONEXCLAMATION); return; } // Make sure the Number info is valid float fArea = atof(m_sArea); if ( 0==fArea ) { AfxMessageBox(_T("客房面积:请输入非零数字"), MB_ICONEXCLAMATION); return; } m_sArea.Format("%.2f", fArea); float fPrice = atof(m_sPrice); if ( 0==fPrice ) { AfxMessageBox(_T("住房单价:请输入非零数字"), MB_ICONEXCLAMATION); return; } m_sPrice.Format("%.2f", fPrice); if ( atof(m_sPrice)>99999999.99 ) { AfxMessageBox(_T("住房单价溢出,请不要超过99999999.99"), MB_ICONEXCLAMATION); return; } _variant_t strQuery; if (m_bAppend) { // Judge Room Type is Unique strQuery = "select * from roomtype where typeid='"+m_sTypeID+"'"; theApp.ADOExecute(theApp.m_pADOSet, strQuery); int iCount = theApp.m_pADOSet->GetRecordCount(); if ( 0!=iCount ) { AfxMessageBox(_T("已经存在此标准编号的记录!"), MB_ICONEXCLAMATION); return; } // Judge Room Name is Unique strQuery = "select * from roomtype where typeid!='"+m_sTypeID+"' and typename='"+m_sTypeName+"'"; theApp.ADOExecute(theApp.m_pADOSet, strQuery); iCount = theApp.m_pADOSet->GetRecordCount(); if ( 0!=iCount ) { AfxMessageBox(_T("已经存相同客房标准的记录!"), MB_ICONEXCLAMATION); return; } } // Get other info CString sAir("0"), sTel("0"), sTV("0"), sToilet("0"); if ( ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->GetCurSel() ) sAir="1"; if ( ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->GetCurSel() ) sTel="1"; if ( ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->GetCurSel() ) sTV="1"; if ( ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->GetCurSel() ) sToilet="1"; if (m_bAppend)// Append Record { strQuery = "insert roomtype (typeid, typename, area, bednum, price, haircondition, htelephone, htelevision, htoilet) \ values ('"+m_sTypeID+"', '"+m_sTypeName+"', "+m_sArea+", "+m_sBedNo+", "+m_sPrice+", "+sAir+", "+sTel+","+sTV+", "+sToilet+")"; if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) { AfxMessageBox(_T("添加记录成功!"), MB_ICONINFORMATION); // Clear all input m_sTypeID=m_sTypeName=m_sArea=m_sBedNo=m_sPrice=""; ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->SetCurSel(1); ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->SetCurSel(1); ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->SetCurSel(1); ((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->SetCurSel(1); UpdateData(false); } else AfxMessageBox(_T("添加记录失败!"), MB_ICONEXCLAMATION); } else// Alter Record { strQuery = "Update roomtype set area="+m_sArea+", bednum="+m_sBedNo+", price="+m_sPrice+", haircondition="+sAir+", \ htelephone="+sTel+", htelevision="+sTV+", htoilet="+sToilet+" where typeid='"+m_sTypeID+"'"; if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) AfxMessageBox(_T("修改记录成功!"), MB_ICONINFORMATION); else AfxMessageBox(_T("修改记录失败!"), MB_ICONEXCLAMATION); } // Refresh RoomType List CHotel_MISView* p = (CHotel_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView()); p->RefreshRoomType(); if (!m_bAppend) CDialog::OnOK(); }